package day06;

import java.util.concurrent.TimeUnit;

/**
 * @author: 王丹
 * @create: 2021-06-30 23:26
 * 注意：sleep方法由于中断而抛出异常之后，线程的中断标志会被清除（置为false），
 * 所以在异常中需要执行this.interrupt()方法，将中断标志位置为true
 **/
public class Demo05 {
    public static void main(String[] args) {
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    try {
                        TimeUnit.SECONDS.sleep(10);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    //todo this.isInterrupted()没有该方法
//                    if (this.isInterrupted()) {
//                        System.out.println("如果一个线程调用了sleep方法，一直处于休眠状态，通过变量控制，还可以中断线程么？");
//                        break;
//                    }
                }
            }
        });
        Thread thread1 = new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    try {
                        TimeUnit.SECONDS.sleep(10);
                    } catch (InterruptedException e) {
                        //this.interrupt();
                        e.printStackTrace();
                    }
//                    if (this.isInterrupted()) {
//                        System.out.println("如果一个线程调用了sleep方法，一直处于休眠状态，通过变量控制，还可以中断线程么？");
//                        break;
//                    }
                }
            }
        });
    }

}